פרק 9 - מבוא למערכות עקיבה סינכרוניות ) מתוזמנות על ידי שעון ( מערכת עקיבה (Sequential Circuit) x i z i מערכת צירופית (Combinational Circuit) ערכי הפלט תלויים אך ורק בערכים הנוכחיים של משתני הקלט מערכת צירופית + זיכרון! ערכי הפלט תלויים בערכי הקלט+ תוכן הזיכרון של המערכת ) " ההיסטוריה " ( מערכת צירופית current state y memory z =f(x,y) Y= g(x,y) Y next state x i Z i =f(x i ) z i אין כל אלמנט זמן. היציאות הן פונקציה של משתני הכניסה. יש משוב! 255 מערכת עקיבה נמצאת בכל רגע נתון ב מצב מסוים. המצב מיוצג על ידי ערכי הזיכרון של המערכת העקיבה. המערכת יכולה לעבור ממצב אחד למצב אחר, בתלות במצב הנוכחי ובכניסות. מערכת עקיבה סינכרונית יכולה לעבור ממצב אחד למצב אחר רק בזמנים מסוימים. המערכת מקבלת אות שעון, והשעון קובע מתי יתבצעו מעברי המצב. במערכת שבשקף הקודם, בהנתן x i ו- current state מחושבים ה- next state והיציאות. בעת עליית השעון המערכת מפיקה את המצב שלה,, current state ועם input חדש ) ייתכן שזהה בערכו לקודם), מחושב המצב הבא של המערכת,, next state והפלט החדש. 256 כדוגמא להמחשת ההבדלים בין מערכת צירופית למערכת עקיבה נשווה בין שני המנעולים הבאים : 1
0 9 1 8 7 2 6 3 5 4 מנעול סידרתי (כספת) פתיחה עם קוד 803 גלגלי שיניים 7 9 2 8 0 3 9 1 4 מנעול צירופי ערכים לכניסות 257 היא זו שתפתח את הכספת אזי מצבי המערכת הסדרתית 803 בהנחה שהסדרה ) ומצבי הזיכרון ( הם : מצב : A מצב התחלתי - לא הופיעה עדיין שום ספרה של סדרת הפתיחה. מצב : B ספרה ראשונה (8) הופיעה. מצב : C ספרה שניה (0) הופיעה הסדרה '80' הופיעה! x Dial state 9,,1,0 Safe Loc Control z תאור סכמטי: מוצא 1 = z פותח את הכספת. כל עוד 0 = z הכספת סגורה. למען הפשטות, נניח שאחרי כל טעות צריך להתחיל מחדש. נתאר את פעולת המערכת על ידי דיאגרמת מצבים ) diagram ( state : X 8/z=0 X 8 X 3/z=0 X=8/z=0 X=8/z=0 A B C X 0/z=0 X 8 X=8/z=0 X=3/z=1 X=0/z=0 נניח לצורך ההשוואה ולמען הפשטות, שהכניסה נדגמת בזמנים קצובים. המערכת מתחילה מן המצב ההתחלתי. 258 2
דוגמא שלמה לתכנון של מערכת עקיבה - מסכם טורי X 1 X 2 MSB LSB 0 1 1 0 0 0 1 1 1 0 Serial Adder Z תוצאה שעון הסיביות מגיעות אל המסכם בהפרש זמנים קבוע. נניח שהמסכם מהיר כך שמתבצע חישוב התוצאה לפני שמגיע זוג הסיביות הבא. במסכם FA חוברו שני מספרים כאשר כל הסיביות היגיעו ביחד. כאן, הביטים מגיעים אחד אחרי השני תוך שימוש בזיכרון! 259 המסכם הטורי פועל תחת בקרת שעון ) cloc (. בזמן t 1 הוא מחשב את ה- LSB של התוצאה. בזמן t 2 = t 1 1+ הוא מחשב את הספרה המשמעותית הבאה וכו. דוגמא : LSB לא ייתכן במערכת צירופית כי שם עבור קלט זהה מחושב פלט זהה! t 5 t 4 t 3 t 2 t 1 + 0 1 1 0 0 0 1 1 1 0 X 1 X 2 1 1 0 1 0 Z 260 מהתבוננות ביציאה רואים את ההבדל בין מעגל צירופי למערכת עקיבה. ההבדל מתבטא בכך שהיציאה בזמן מסוים תלויה לא רק בכניסות של אותו הזמן אלא גם בזכרון : פלט בזמן פלט בזמן t 1 t 5 3
למשל, בזמנים t 1, t 5 נקבל עבור אותן כניסות יציאות שונות. כנ ל בזמנים מדוע? כי היציאה בזמן תלויה גם בכניסות בזמן וגם בנשא מזמן t 4 ו- t 3 t i-1 t i t i ו - 1 בהתאמה. שלב : 1 מהם מצבי המערכת? למערכת העקיבה יהיו לפיכך שני מצבים שיתאימו לנשא 0 בדוגמא שלנו A יציין נשא 0 ו- B יציין נשא 1. 261 שלב : 2 ציור דיאגרמת מצבים דיאגרמת המצבים של המסכם הבינארי הטורי היא : כל עיגול הוא מצב 00/0 11/1 11/0 A B 00/1 Mealy 01, 10/1 01, 10/0 החיצים מתארים את המעברים האפשריים, כאשר הסימון על החיצים הינו יציאה מתאימה x 1 x 2 / z כניסות הגורמות למעבר המתאים x 2 ו- x 1 סיביות 262 4
טבלת מצבים: שלב 3: בניית טבלת מצבים פעולת המערכת ) מכונת המצבים ( ניתנת לתיאור גם באמצעות NS ( Next State ), Z ( output ) PS ( Present State ) 00 01 11 10 כל צירוף כניסה הוא עמודה כל שורה = מצב A A,0 A,1 B,0 A,1 B A,1 B,0 B,1 B,0 * כל שורה מתאימה למצב בו המערכת יכולה להימצא. * כל עמודה מתאימה לצירוף מסוים של משתני כניסה. * זוג הערכים בטבלה הינו המצב הבא והיציאה הבאה המתקבלים מהמצב הנוכחי וביחד עם הכניסות החדשות. 263 שלב 4: הקצאת מצבים לצורך מימוש המסכם הטורי נקצה לכל מצב A או B צירוף סיביות. כאן מספיקה סיבית אחת 0 A B 1 PS Next State Y Output Z y 00 01 11 10 00 01 11 10 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 טבלת יציאה טבלת מעברים 264 5
y יציין את המצב הנוכחי ו -Y את המצב הבא, כלומר Y מציין את הנשא שנוצר בזמן i-1,y (t i-1 ), t ומוכן להיות מסוכם עם הקלט הבא בזמן. y(t i ), t i לאחר הסיכום, בזמן t i,נוצר Y חדש שמציין את המצב החדש של המסכם ) i Y(t שהופך להיות ) i+1 y(t המימוש יהיה בעזרת : D-FF תהיה יציאה '0' עבור 0 = carry ) מצב.( A תהיה יציאה '1' עבור 1 = carry ) מצב ( B. המצב מסתכם לזוג הסיביות החדש שמגיע! 265 : עם הקצאת המצבים, נוכל לבטא את z ואת Y כפונקציה של הכניסות ושל y פונקצית העירור: ) 2 Y = λ(y,x 1,x z = O(y,x 1,x 2 ) פונקצית היציאה : 266 6
בדוגמא : X 1 X 2 y 0 1 00 01 11 10 y 1 1 1 1 0 X 1 X 2 1 00 01 11 10 1 1 1 1 Y = y x 1 + y x 2 + x 1 x 2 z = y x 1 x 2 267 פונקציית העירור והיציאה שהתקבלו בדוגמא מתאימות ל. Full Adder לכן המערכת תמומש כדלקמן : cloc pulse x 1 x 2 y Full Adder C in C 0 Y Z y Q D Y Cloc ערכו ההתחלתי של ) D או Y) הינו 0. בדרך כלל נשמיט את ציור כניסת השעון לאלמנט ההשהייה. קצב הגעת הכניסות x 1 ו - 2 x צריך להיות 268 מתואם עם השעון. 7
בזמן עליית השעון : Y, x 1, x 2 בערכים הנכונים! עד לעליית השעון הבאה: Y, המצב הבא, הופך למצב הנוכחי. מחושב z הפלט מהמצב הנוכחי ומסיביות הקלט הנוכחיות. מחושב Y חדש כלומר, המצב הבא, ועובר פרק זמן של. Tsetup Th נקבעים ערכים חדשים ל x 1, x 2 Ts עליית שעון 269 השוואה בין מימוש במערכת צירופית למערכת עקיבה: מערכת צירופית: מהירה, אך צורכת פי n משאבים כאשר n הוא מספר סיביות הקלט. מערכת עקיבה: איטית יותר אך חסכונית במשאבים. איטית יותר מכיוון שיש צורך לקחת בחשבון את ה : FF ה Ts וה. TpC-Q יש צורך בזמן 270 8
cloc pulse מבנה מערכות עקיבה סינכרוניות מסוג Mealy X 1 Z 1 X L Combinational Logic Z M y 1 D Y 1 x 1,x 2,,x L -משתני כניסה y 2 D Y 2 z 1,z 2,,z M -משתני יציאה y 1,y 2,,y -משתני מצב y current D Y next מצבים 2 למערכת אפשריים. זוהי הקבוצה. S 271 מערכת : Mealy המוצאים הם פונקציה של המצב הנוכחי והכניסות הנוכחיות. מערכת : Moore המוצאים הם פונקציה של המצב הנוכחי ) נלמד בקורס תכן לוגי (. 272 9
דיאגרמת המצבים של מכונת Moore תיראה כך : 00 10,01 מהו הנשא האחרון שחושב 00 C=0 Z=0 01,10 11 11 11 C=1 Z=0 10,01 Moore מהו ערך היציאה האחרון 00 C=0 C=1 10,01 Z=1 00 Z=1 11 273 l Inputs Next-state logic Cloc Next state memory current state Outputs logic m Outputs 274 במערכת מסוג Moore בה היציאות הינן פונקציה של המצב הנוכחי בלבד, מבנה המערכת שונה במקצת : 11 Z=0 C=0 Z=0 C=1 אם ה input אינו מסונכרן אזי תיתכנה בעיות של metastability בכניסה לזכרון. בעיה חמורה נוספת - ייתכן והשעון יעלה מיד לאחר כניסה של input חדש, לפני שחושב next state חדש במלואו, ואז הערך החדש של next state עלול להיות לא נכון. עליית השעון צריכה להיות כך שה next state logic כבר חישב את המצב הבא, ולכן ערך נכון נטען אל תוך הזיכרון. 10
סנכרון אות הכניסה עם שעון המערכת (ו תשלום נוסף) ניתן לבצע באופן הבא : בהשהיית מחזור שעון Inputs l Next state Cloc l Cloc memory Next-state אותו השעון logic Current state Outputs logic Outputs 275 באופן זה ידוע מתי מגיע ה- input למצב הנוכחי וידוע מכך מתי יהיה ידוע ה - state. next במודל הקודם לא ידוע מתי ה input מגיע ולכן האם ה- next state אכן מוכן לקראת מעבר השעון הבא. נשים לב: במערכת של השקף הקודם, בעת אירוע שעון ראשון המערכת כבר יכולה לעבור אל המצב הבא הנכון על פי כניסות ה input הראשונות. זאת מכיוון שהמצב הבא כבר חושב. במערכת בשקף השני בזמן אירוע שעון ראשון המערכת רק קולטת את סדרת כניסות ה input- הראשון ולכן המצב הבא ידוע רק לאחר השעון הראשון והמעבר אליו יקרה בעת אירוע השעון השני. מצב ראשון יוצא מהזיכרון ומחושב מצב ראשון נטען לזיכרון טעינת Input ראשון עובר אל חישוב מצב ראשון Input ראשון Output ראשון שקף : 275 מצב ראשון מוכן Input שני מוכן מצב שני יוצא מהזיכרון וגורר טעינת Input שני מצב ראשון יוצא מהזיכרון וגורר output ראשון שקף : 274 Output שני מצב ראשון מוכן Input שני מוכן חישוב מצב ראשון 276 11
שקף ריק 277 שקף ריק 278 12
שקף ריק 279 שקף ריק 280 13
שקף ריק 281 14